package com.qiandao.xuexitong.service.impl;

import com.qiandao.xuexitong.entity.User;
import com.qiandao.xuexitong.mapper.UserMapper;
import com.qiandao.xuexitong.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiandao.xuexitong.service.UserService;
import com.qiandao.xuexitong.exception.BusinessException;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

/**
 * <p>
 * 用户表（学生、教师） 服务实现类
 * </p>
 *
 * @author YouJiao
 * @since 2025-04-13
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Override
    public User login(String username, String password) {
        // 1. 根据用户名查询用户
        User user = getOne(new LambdaQueryWrapper<User>()
            .eq(User::getUsername, username));
        
        // 2. 判断用户是否存在
        if (user == null) {
            throw new BusinessException("用户名或密码错误");
        }
        
        // 3. 验证密码（直接比较明文）
        if (!user.getPassword().equals(password)) {
            throw new BusinessException("用户名或密码错误");
        }
        
        // 4. 返回用户信息
        return user;
    }

    @Override
    public User verifyUser(String username, String password) {
        // 1. 根据用户名查询用户
        User user = getOne(new LambdaQueryWrapper<User>()
            .eq(User::getUsername, username));
        
        // 2. 判断用户是否存在
        if (user == null) {
            return null;
        }
        
        // 3. 验证密码（直接比较明文）
        if (!user.getPassword().equals(password)) {
            return null;
        }
        
        // 4. 返回用户信息
        return user;
    }
}
